Machines communicate to their users by various means. Inputs to a machine may be made with buttons, switches, knobs, keys, dials, and levers (input devices). A machine might communicate status to a user by lights, numeric displays, alphanumeric displays, meters, video displays, graphs, alarms or flags (output devices). Collectively these input and output devices may be called human interface devices since they act as the media of information exchange between humans and machines.
Modern machines may have a large number of functions which they are able to perform. Additionally, these machines may also have a large amount of data to present to a user or operator. Where large and complex data are exchanged between human and machine, keyboards and video displays are often used. An example of this case may be a large photocopier with its own built in video display and keyboard. Where very small amounts are exchanged, individual input devices like buttons and switches are assigned to each function. Small amounts of data may be presented to the user by output devices such as an indicator or readout assigned to each data item. An example is a multiline telephone where a button and indicator exist for each incoming telephone line. As the number of functions and status messages of a machine increases, the number of input and output devices dedicated to each function and status also increases. There is a point where such human interface devices become too numerous and costly. At this point it is common to make each human interface device perform a variety of jobs. A common example is a kitchen microwave oven where the same keypad can enter the cooking duration or the time of day. Similarly, the microwave's digital readout can display cooking time remaining or time of day. As more and more duties are heaped upon each human interface device, the possibility of confusion arises. The user must know which function is activated by which input device since each input device has numerous functions which it can activate, the function activated depending on the current state of the machine. Likewise, one output device can be made to indicate numerous status conditions of a machine as long as the user understands which status is being displayed.
Several approaches have been used to help the user know the meaning of such multiplexed human interface devices. One method is to have the user remember the previous set of inputs to the machine since the previous inputs define the current interpretation of the human interface devices. Examples of this approach are programmable digital watches where the user pushes more than one button in a sequence to enable a watch function. Another method may have dedicated output devices display the mode of the machine and dedicated input devices select the mode. From the mode the user knows how to interpret the other human interface devices. A digital alarm clock with an AM/PM indicator light is an example of a device which uses a dedicated output device to display the mode. In this example the light indicates whether the user should interpret the numbers on the clock as morning or evening time. Using a human interface device for more than one function is called multiplexing. An important point in multiplexing the use of human interface devices is for the user to know and be able to select the use of the human interface devices. Another method of multiplexing input devices is the "softkey". A softkey is a button or key on a keyboard whose function is indicated on an adjacent VDT (video display terminal) or LCD (liquid crystal display). With softkeys the descriptions (if any) written on the key do not state its current function. A portion of the VDT or LCD is reserved for descriptions of each softkey's function. In using softkeys the user reads the VDT or LCD to determine the function associated with each softkey. During the operation of the machine, the functions performed by the softkeys may change. When a softkey's function changes, the corresponding description of that softkey on the VDT or LCD will also change. By referring to the display, the user knows the current function of a softkey. Softkeys of this type are commonly found on personal computers (PCs). As the user runs different programs or portions of a program, the function of special keys (sometimes called function keys or F1 through F9) will change. Touch screens are another method of multiplexing input devices. Like the softkey, touch screens use the display (typically a VDT or LCD) to display the available input functions. In this case however there is no physical button associated with the displayed functions. A picture of the button or a picture suggesting the function (sometimes called an icon) is displayed. The user selects the function by touching the screen with a pointing device. In some implementations the pointing device is the user's finger. Sensors associated with the display detect the user's pointing device input. Still another variation is where the functions are displayed on the VDT or LCD and the user moves an indicator by means of a mouse or trackball to highlight one function. The highlighted function is then selected by depressing a button on the mouse or trackball. This method is very common on personal computers today. For output, the VDT or LCD itself is used to perform a variety of output functions. The same display is used to convey various information. The type of information displayed changes with the operating state or program being run. Some industrial applications actually have their VDTs displaying pictures of gauges or meters. The particular gauge or meter displayed changes with operating conditions.
While the use of a VDT or LCD to indicate the current function of a human interface device is intuitive; it is also expensive. Many machines might benefit from a VDT or LCD display, but the cost is prohibitive for the application. In cases where cost prevents the use of VDT or LCDs, a listing of the functions for each human interface device might be used. A common example of a function listing for a human interface device is a typewriter keyboard. Many of the keys have more than one function. The key associated with the numeral "7" for example, also may be the key for the "&" when the shift key is pressed. This is a simple case where the list has only two items. Personal computer keyboards may have function lists of three or more when used with special keys like "shift", "control" and "alternate". While this multiplexing of keys in particular (or human interface devices in general) saves cost, it becomes confusing to the user. For example, a user may not realize which of the four symbols written on a keycap is applicable at some particular moment. The key may be able to perform four functions, but which of the four functions is currently active? Scientific calculators are another example of one key performing many functions. Again the user must ask; "What function will this key perform when it is pressed?"